<?php
class ProductModelClass extends AdateModelClass{
// 	const ProductDbUser = 'pts80_01';	//数据库用户名 产品操作用户
// 	const ProductDbPassword = 'pts80com80808';	//数据库密码
	
	const ProductDbUser = 'root';	//数据库用户名 产品操作用户
	const ProductDbPassword = '';	//数据库密码
	
	const DBTable = 'pts_product_cs';	//数据表名
	
	/**
	* 构造函数
	* 链接数据库
	* @access public
	* @return object
	*/
	public function __construct(){
		$this->link = $this->getConnect(self::ProductDbUser,self::ProductDbPassword);
	}
	
	/**
	 * 添加产品信息
	 * @param array array //一维/二维，键值对数组数据
	 * @return integer id || array ids //返回插入的数据id
	 */
	public function add($array){
		foreach($array as $key=>$val){
			if(is_array($val)){//二维数组
				$array[$key]['addtime'] = time();
			}else{//一维数组
				$array['addtime'] = time();
				break;
			}
		}
		$add_id = $this->insert($array, self::DBTable, $this->link);
		if($add_id){
			return $add_id;
		}else{
			if(self::Tracy){
				throw new Exception($this->dbError);
			}else{
				return 0;
			}
		}
	}
	
	/**
	 * 修改产品信息
	 * @param array array //一维，键值对数组数据
	 * @param integer id //产品id
	 * @return integer //成功返回1，失败返回0
	 */
	public function updatePro($array,$id){
		$where = '1 and id = '.$id;
		$array['updatetime'] = time();
		$res = $this->update($array, self::DBTable, $where,$this->link);
		if($res){
			return $res;
		}else{
			if(self::Tracy){
				throw new Exception($this->dbError);
			}else{
				return 0;
			}
			
		}
	}
	
	/**
	 * 修改产品状态
	 * @param integer status //状态值(0:1)
	 * @param string type //状态类型 (sj上下架，del 删除，audit 审核)
	 * @param integer id //产品id
	 * @return integer 成功返回1，失败返回0
	 */
	public function updateStatus($status,$type,$id){
		switch ($type) {
			case 'sj':
			$array = array('sj'=>$status);
			break;
			case 'del':
			$array = array('del'=>$status);
			break;
			case 'audit':
			$array = array('audit'=>$status);
			break;
		}
		$array['updatetime'] = time();
		return $this->updatePro($array, $id);
	}
	
	/**
	 * 修改产品库存
	 * @param double inventory //加减库存值（有可能是负数）
	 * @param integer id //产品id
	 * @return integer 成功返回1，失败返回0
	 */
	public function updateInventory($inventory,$id){
		$inventory = doubleval($inventory);
		$where = '1 and id='.$id;
		$inventory_db = $this->select('inventory',$where);
		$inventory_db += $inventory;
		if($inventory_db<0){
			$this->dbError = '库存不足！';
			throw new Exception($this->dbError);
		}
		$array = array('inventory'=>$inventory_db);
		$array['updatetime'] = time();
		return $this->updatePro($array, $id);
	}
	
	/**
	 * 重写单行查询方法
	 * @access public
	 * @param string fields 查询的字段
	 * @param string where 查询条件
	 * @return mixed
	 */
	public function select ($field,$where=''){
		return parent::select($field, self::DBTable, $where, $this->link);
	}
	
	/**
	 * 重写多行查询方法
	 * @access public
	 * @param string fields 查询的字段
	 * @param string where 查询条件
	 * @param string order 排序
	 * @param string limit 限界
	 * @return array
	 */
	public function selectList($field,$where='',$order='',$limit=''){
		return parent::selectList($field,self::DBTable,$where,$order,$limit,$this->link);
	}
	
}